Current graphics data processing is exemplified by systems and methods developed to perform a specific operation on several graphics data elements, e.g., linear interpolation, tessellation, texture mapping, depth testing. Traditionally graphics processing systems were implemented as fixed function computation units and more recently the computation units are programmable to perform a limited set of operations. Computation units are connected in a “shading pipeline” to perform shading operations.
The shading pipeline includes a write interface for writing graphics data to graphics memory, such as writing color data to a color buffer for display as an image. The shading pipeline also includes a texture read interface for reading texture data from a texture map stored in graphics memory. Conventionally a writable output buffer, such as a color buffer for display may not be read from by the texture read interface. Therefore, prior to accessing the color buffer as a texture map, such as during reflection mapping, the color buffer may be copied to a read-only texture buffer. Copying the color buffer to a texture buffer requires reading the color buffer and writing the texture buffer, using memory bandwidth which is often a valuable resource in a graphics subsystem.
For the foregoing reasons, it is desirable to directly read from a color buffer using the texture read interface without copying the color buffer to a texture buffer.